Skip to main content

宿主对象、原生对象、内置对象有什么区别?

原生对象

  • 独立于宿主环境的 ECMAScript 实现提供的对象。与宿主无关,在 javascript(远景浏览器)、nodejs(node 平台)、jscript(ie 浏览器)、typescript(微软平台)等等中均有这些对象。
  • 简单来说,不依赖于宿主环境的对象,只要是支持 js 环境下中均有这些对象
  • 常见原生对象有 Object、Function、Array、String 等

宿主对象

  • ECMAScript 中的“宿主”就是我们网页的运行环境,即“操作系统”和“浏览器”。
  • 所有非原生对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。不同的环境是不一样的
  • 常见浏览器宿主对象有 window, document

内置对象

  • 实际上内置对象也都是原生对象
  • 目前定义的内置对象只有两个:Global 和 Math
  • 由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现,即在引擎初始化阶段就被创建好的对象。这意味着开发者不必明确实例化内置对象,它已被实例化了
  • Math.floor(2.4)直接调用取整,不需要再进行实例化。